package gui.gui;

import java.awt.event.ActionListener;
import java.util.Date;
import java.util.List;

import Fiad.FIAD;
import Fiad.Konstanten;

import valueobjects.Ausbilder.Ausbilder;
import valueobjects.Azubi.Azubi;
import valueobjects.Azubi.AzubiImpl;
import valueobjects.Betrieb.Betrieb;
import valueobjects.Klasse.Klasse;
import gui.GuiCommands;
import gui.gui_gen.Azubierstellung_gen;

public class Azubierstellung extends Azubierstellung_gen implements Konstanten {
	private FIAD fiad = null;

	public Azubierstellung(FIAD fiad) {
		this.fiad = fiad;
		cbAusbilder.removeAllItems();
		cbBeruf.removeAllItems();
		cbKlasse.removeAllItems();
		cbBetrieb.removeAllItems();
		cbSchulabschluss.removeAllItems();
		cbSchulform.removeAllItems();
		cbGeschlecht.removeAllItems();

		List<Ausbilder> ausbilderList = fiad.getAlleAusbilder();
		for (Ausbilder ausbilder : ausbilderList) {
			cbAusbilder.addItem(ausbilder);
		}

		List<Betrieb> betriebList = fiad.getAlleBetriebe();
		for (Betrieb betrieb : betriebList) {
			cbBetrieb.addItem(betrieb);
		}

		cbSchulabschluss.addItem(OHNE);
		cbSchulabschluss.addItem(H8_Sd9);
		cbSchulabschluss.addItem(H9);
		cbSchulabschluss.addItem(H10);
		cbSchulabschluss.addItem(FOR);
		cbSchulabschluss.addItem(FORQ);
		cbSchulabschluss.addItem(FHR);
		cbSchulabschluss.addItem(AHR);
		cbSchulabschluss.addItem(SONSTIGER);
		cbSchulform.addItem(H);
		cbSchulform.addItem(GE);
		cbSchulform.addItem(GY);
		cbSchulform.addItem(R);
		cbSchulform.addItem(BG);
		cbSchulform.addItem(SL);
		cbSchulform.addItem(SONSTIGE);

		cbGeschlecht.addItem(M);
		cbGeschlecht.addItem(W);

		cbBeruf.addItem(BERUF_SI);
		cbBeruf.addItem(BERUF_AE);

		List<Klasse> klasseList = fiad.getAlleKlassen();
		for (Klasse klasse : klasseList) {
			cbKlasse.addItem(klasse);
		}

		init();
	}

	public void init() {
		super.btnAbbrechen.setActionCommand(GuiCommands.ABBRECHEN.name());
		super.btnOK.setActionCommand(GuiCommands.OK.name());
	}

	public void abbrechenButton() {
		this.setVisible(false);

	}

	public void azubiHinzu() {
		Azubi a = new AzubiImpl();
		a.setAusbilder((Ausbilder) cbAusbilder.getSelectedItem());

		a.setAustrittsdatum(calAustritt.getCalendar().getTime());
		a.setBeruf(cbBeruf.getSelectedItem().toString().trim());
		a.setBetrieb((Betrieb) cbBetrieb.getSelectedItem());

		a.setEintrittsdatum(calEintritt.getCalendar().getTime());
		a.setEmail(txfEmail.getText().trim());
		a.setGeburtsdatum(calGeburtsdatum.getCalendar().getTime());
		a.setGeburtsland(txfGeburtsland.getText().trim());
		a.setGeburtsort(txfGeburtsort.getText().trim());
		a.setGeschlecht(cbGeschlecht.getSelectedItem().toString().trim());
		a.setHausnummer(Integer.valueOf(txfHausnummer.getText().trim()));

		a.setKlasse((Klasse) cbKlasse.getSelectedItem());

		a.setName(txfName.getText().trim());
		a.setOrt(txfOrt.getText().trim());
		a.setPlz(txfPLZ.getText().trim());
		a.setReligion(txfReligion.getText().trim());
		a.setSchulabschluss(cbSchulabschluss.getSelectedItem().toString());
		a.setSchulForm(cbSchulform.getSelectedItem().toString());
		a.setSchulname(txfSchulname.getText().trim());
		a.setSchulOrt(txfSchulort.getText().trim());
		a.setSchulplz(txfSchulplz.getText().trim());
		a.setSchulStrasse(txfSchulstraße.getText().trim());
		a.setStaatsangehoerigkeit(txfStaatsangehoerigkeit.getText().trim());
		a.setStrasse(txfStrasse.getText().trim());
		a.setTelefon(txfTelefon.getText().trim());
		a.setVorname(txfVorname.getText().trim());

		fiad.speichereAzubi(a);
		
		
		this.setVisible(false);

	}

	public void registerActionListenerForAzubibuttons(ActionListener listener) {
		super.btnOK.addActionListener(listener);
		super.btnAbbrechen.addActionListener(listener);

	}

}
